In the computer field, plenty of clients and server system structures exist. One or more clients or even massive clients are connected to a server to interact with the server and obtain services so as to meet requirements of the clients.
Currently, with growth of services, one server may serve tens of thousands of, or even over a million clients simultaneously, and usually needs to handle connection requests from the clients continuously. When a server is abnormal, for example, restarted or broken down, the disconnected clients will request to reconnect to the server immediately so that the clients can get connected as soon as practicable.
However, the total connection capability of each server is fixed under certain conditions. Although the connection capability may be improved through optimization, the connection capability still has a reasonable upper limit, namely, maximum connection capability. Meanwhile, each server's capability of handling access per second is also fixed under certain conditions, and has a reasonable value, namely, connection processing rate. Obviously, the maximum connection capability is far greater than the connection processing rate. Once a server is restarted or breaks down, with plenty of clients requesting to reconnect immediately, the server may reach or exceed its maximum connection capability, and the connection processing rate of the server is unable to handle so many connections simultaneously, which gives rise to surge requests.
A surge means that many clients request services from a server concurrently, with the rate of the concurrent requests being greater than the processing capability of the server. When the number of connection requests of the clients in a unit time exceeds the processing capability of the server, the part of connection requests beyond the processing capability will not be satisfied normally.
To cope with such circumstances, a corresponding reconnection mechanism exists on the client. Once a client fails in connecting, the client sends new connection requests to the server again. Consequently, the connection requests increase exponentially, which reduces the quality of service or even interrupts the service and brings disastrous consequences.